package day3;

import java.util.Random;
import java.util.Scanner;

import javax.swing.text.TabableView;

import org.junit.Test;

public class WhileFor {

	@Test
	public void test1() {
		System.out.println("HelloWorld!");
		System.out.println("HelloWorld!");
		System.out.println("HelloWorld!");
		System.out.println("HelloWorld!");
		System.out.println("HelloWorld!");
	}
	
	@Test
	public void test2() {
//		循环的三要素：
//		1、循环条件的初始化
//		2、循环条件的控制
//		3、循环条件的改变
		int i = 1;
		while (i <= 5) {
			System.out.println("HelloWorld");
			i++;
		}
		
	}
	
	@Test
	public void test3() {
		// 循环中使用的变量一般i,j,k
		int i = 1;
		while (i <= 100) {
			System.out.println(i);
			i++;
		}
	}
	
	@Test
	public void test4() {
		for (int i = 1; i <= 5; i++) {
			System.out.println("HelloWorld");
		}
	}
	
	
	
	//1、累加思想（1+2+3+... + 100）
	@Test
	public void test5() {
		int sum = 0;
		for (int i = 1; i <= 100; i++) {
			System.out.println(i);
			sum = sum + i;
			
			// System.out.println("sum: " + sum);
		}
		System.out.println("sum: " + sum);
	}
	
	@Test
	public void test333() {
		int sum = 0;
		int i = 1;
		while (i <= 100) {
			sum = sum + i;
			i++;
		}
		System.out.println("sum: " + sum);
	}

	//2、统计思想，数一下符合条件的有多少个（计算1-100以内7的倍数）
	@Test
	public void test44() {
		int count = 0;
		for (int i = 1; i <= 100; i++) {
			if (i % 7 == 0) {
				System.out.println(i + "是7的倍数");
				count++;
			}
		}
		
		System.out.println("1-100以内7的倍数有" + count + "个");
	}
	
	@Test
	public void test45() {
		int count = 0;
		int i = 1;
		while (i <= 100) {
			if (i % 7 == 0) {
				System.out.println(i + "是7的倍数");
				count++;
			}
			i++;
		}
		System.out.println("1-100以内7的倍数有" + count + "个");
	}
	
	
	// continue：跳出本次循环，继续下一次循环
	@Test
	public void test55() {
		for (int i = 1; i <= 10; i++) {
			if (i == 5) {
				continue;
			}
			System.out.println(i);
		}
	}
	
	
	// break：跳出离他最近的那层循环
	@Test
	public void test56() {
		for (int i = 1; i <= 10; i++) {
			if (i == 5) {
				break;
			}
			System.out.println(i);
		}
	}
	
	@Test
	public void test58() {
		for (int i = 1; i <= 10; i++) {
			System.out.println("i: " + i);
			for (int j = 1; j <= 10; j++) {
				System.out.println("j: " + j);
			}
		}
	}
	
	@Test
	public void test57() {
		for (int i = 1; i <= 10; i++) {
			System.out.println("i: " + i);
			for (int j = 1; j <= 10; j++) {
				if (j == 5) {
					break;
				}
				System.out.println("j: " + j);
			}
		}
	}
	
	@Test
	public void test11() {
		Scanner scanner = new Scanner(System.in);
		// Random随机，可以实现随机生成某个范围内的数
		Random random = new Random();
		// 返回值：下一个伪随机数，在此随机数生成器序列中 0（包括）和 n（不包括）之间均匀分布的 int 值。
		// [0, 100)  [0,99] + 1 = [1, 100]
		int num = random.nextInt(100) + 1;
		System.out.println(num);
		//  死循环（无限循环） while(true)  for(;;)
		while (true) {
			System.out.println("猜吧");
			int guess = scanner.nextInt();
			if (num > guess) {
				System.out.println("太小了");
			} else if (num < guess) {
				System.out.println("太大了");
			} else {
				System.out.println("猜对了");
				break;
			}
		}
		// Unreachable code
		System.out.println("1");
	}
	
	
//	****
//	****
//	****
	@Test
	public void test66() {
		// ****
		for (int i = 1; i <= 4; i++) {
			System.out.print("*");
		}
		System.out.println();// 打印一个换行
		// *
		// *
		// *
		for (int i = 1; i <= 3; i++) {
			System.out.println("*");
		}
		System.out.println("----------------");
		for (int i = 1; i <= 3; i++) {
			// i=1 代表打印第1行
			for (int j = 1; j <= 4; j++) {
				System.out.print("*");
			}
			// 打印完一行之后要换行
			System.out.println();
		}
	}
	
//	*
//	**
//	***
//	****
//	*****
	@Test
	public void test666() {
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		// i=1    1
		// i=2    2
		// i=3    3
	}
	
	@Test
	public void test69() {
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j + "*" + i + "="+(i*j)+" \t");
			}
			System.out.println();
		}
	}
	
	@Test
	public void test22() {
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				// System.out.print("2*9=18 \t");
				System.out.print(j+"*"+i+"="+(i*j)+" \t");
			}
			System.out.println();
		}
	}
	
	
	
	
}
